"use strict";

const Controller = require("egg").Controller;

/**
 * @Controller 教室管理
 */
class RoomController extends Controller {
    /**
     * @jwt
     * @summary 教室列表
     * @description 获取所有教室列表
     * @router get /rooms
     * @response 200 BaseResponse 请求成功
     */
    async index() {
        const res = await this.service.room.readList();
        this.ctx.helper.send(200, res);
    }

    /**
     * @jwt
     * @summary 添加教室
     * @description 添加一个教室
     * @router post /rooms
     * @request body CreateRoomRequest *body
     * @response 200 BaseResponse 请求成功
     */
    async create() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.CreateRoomRequest);
        // 入库
        await this.service.room.save(this.ctx.request.body);
        // 返回响应
        this.ctx.helper.send(201, null, "添加成功");
    }

    /**
     * @jwt
     * @summary 删除教室
     * @description 删除一个教室
     * @router delete /rooms/:id
     * @request path string id 教室 id
     * @response 200 BaseResponse 请求成功
     */
    async destroy() {
        // 删除
        await this.service.room.remove(this.ctx.params.id);
        // 不出错，删除成功
        this.ctx.helper.send(204);
    }
}

module.exports = RoomController;
